Was pointed to this standard test of executive function (or at least one’s experience of it) called the ESQ-R, the “Executive Skills Questionnaire, Revised”. Always one to see what these self-reporting tools say about by neurodivergence, I took the test here.
No idea as to the test’s ultimate validity but this tracks:
Went to the theater last night with my girlfriend(😁 👋), like a real adult.
Except it was a shockingly hilarious parody puppet show version of The princess Bride (By S. Morgenstern) by the All Puppet Players, complete with alcohol, musical numbers, 4th wall breaking, flubs, ad-libs and improv.
And I will never hear the lines “I’m going to do him left handed… if I use my right it’s over too quickly!” the same again (Vizzini the puppet: “We didn’t change those lines – at all!!)
Guess it’s time to revisit the blog engine here. I wrote Goldfrog a few years ago and it’s been chugging along on this Digital Ocean instance fairly well, but at the time I had in mind a two-way sync between gitlab, where I maintain a separate repository of my archived content, and the filesystem/db in Goldfrog.
It worked, sort of, for a while, but the deployment on DO is NOT simple to remember, uses Ansible and code from 2 different git repos to set up or update the server, and was just 3 times more clever than it should have been.
I also implemented a flexible/configurable POSSE feature that is supposed to send updates to my mastodon account but … isn’t right now? And the logging setup on the site is abysmal.
I still like parts of my system. If I did it again, I’d still want:
My custom posting UI that works like the ancient Radio Userland sites did: post form at the top of the home page list of posts:
And my version in Goldfrog:
A small web app - not a static site generator
Content stored ultimately as markdown files so they can be stored in git or similar
Content indexed in sqlite for searching. serving various archive pages (tags, etc)
UPDATE: As long as I’m dreaming, I wish it was easier to run a small web app like this off a container. I probably could with Digital Ocean’s app platform, I haven’t looked into it lately, and I’d still have to solve the “index in a sqlite db file” problem.
Fedi/Mastodon programmers… with the #MastodonAPI, and given a url to a post on any instance (assuming I have access to the toot from my account), how might I get my instance to fetch it and give me a “local” ID that is suitable for passing as the “inReplyToID” in a toot payload?
Dammit I started a branch on Goldfrog to play with the #micropub api, and now that it’s in pieces on the editor floor, I have 3 more features I want to add. #indieweb#blogging
(One is adding the ability for a note or post here to be a reply to another post on Mastodon.)
I recently learned about a small town in Alabama that has not held a public election for more than sixty years. The town is Newbern, Alabama. While nearly eighty-five percent of the town residents are Black, before 2020 the town never had a Black mayor.
Guy Nave, Jr gives a well-written and succint history of voting rights for former enslaved Black people in the south, then tells the story describing the incredible “hand-me-down” white mayorship in the majority-Black town.
“We’ve never had an election out here. We don’t have ballots and machines to do it.” Stokes became mayor in 2008, when he inherited the position from Haywood Stokes Jr. Their ancestor, Peter P. Stokes, served in the Confederate Army and “owned” enslaved Black people when Newbern was a cotton plantation town.
Been wanting to re-focus on the ol’ blog here, and a friend told me about https://shutupwrite.com/ – there’s a local event tomorrow night so going to go hang out and work on some longer posts with a bunch of other writers :) #writing#blogging#community
As for running Goldfrog, it’s just a Go binary running off a config file, a theme directory, and a directory of content. There’s a separate tool for indexing posts from the filesystem into sqlite (usually only done when installing or updating from git).
Runs on a DO droplet, currently deployed with ansible
The only “admin” functionality is posting and editing posts, everything else is editing a config in git. “Admin” is based on a security-through-obscurity login url and a hardcoded user and password in the configs. This is dumb ;) and I’m experimenting with supporting Gitlab OAUth for login.
Posts are stored in git as Markdown files with yaml headers
posts are read into a SQLite db for serving and searching
I enjoy hacking on Goldfrog, and sure I’d like it if someone had a barebones product like it, but I have no interest in supporting either an actual open-source product, or running an entire damn “platform”. 💜
…one of the best things I ever did (about 6-7 years ago now) was look for POC voices on Twitter to follow. I did the same here. But it was intentional because I was learning how small my bubble was, and it has made a huge difference in how I understand the world.
What with Twitter (aka birdsite, hellsite, muskosite) flailing in the clammy hands of Dr. No, and interest in the federated web re-emerging, I figured it was time to review my own web presence and see what was the situation.
Dear reader, it was Not Good.
Warning one was hitting this site from my work network and getting a BitDefender screen of doom saying the site was serving a keylogger. NOT GOOD.
Then the site - which was hosted on Linode and runs my own homegrown blog software, Goldfrog - went completely down. After some “where did those ssh keys get to, where is this thing anyway” I got logged in and figured out that my server had been hacked in some way, TLS and letsencrypt removed. I haven’t had time to troll the logs for evidence as to how the server was accessed, but I downloaded them and have them set aside to look later.
We Can Rebuild It
Thus entered a week of figuring out once again how the heck Monkinetic is built and deployed, migrating the code from Github to Gitlab (which I’m more familiar with due to $dayjob), and refactoring the Ansible code that builds the server and deploys the blog/content.
Finally today I got it 85% done, which is pretty good for a full migration between hosting providers (I also moved from Linode to Digital Ocean where I already have some other services).
Masto-tootly-don
With the insanity on Twitter, I logged back into my Mastodon account on toot.cafe and enjoyed the huge stream of new folks migrating from Twitter to federated platforms (mostly to mastodon.social since that’s the first/largest instance, but folks are making their way from there to smaller instances as they get more comfortable).
Apparently Mastodon 4.0 is out (release candidate) and they’ve changed the annoying-until-it-was-gone “Toot” to “Publish”. I’d have preferred “Post” myself, but 🤷♀️.
From a thread I posted on Play Viscious, re-posted here for posterity:
My wife and I watched part 1 of the PBS documentary “The Vote” last night and I am learning a LOT. Some notes (a thread):
If I learned anything about women’s suffrage in school was quickly forgotten, pretty much everything in there was new. I think I knew Susan B. Anthony’s name and Ida B. Wells.
I think this documentary started to help me see intersectionality in action some? the fight for the ability to vote included conflicts over who should be granted the franchise first: educated white women, or black men. And black women getting left out either way (it was black men).
The fight for voting rights for women was absolutely necessary, but it hurt to see the racist attitudes and decisions coming from the white suffragettes from leadership on down.
Frederick Douglass was a huge proponent of women’s suffrage - and he and the black women’s suffrage clubs were pushed out when it seemed like black involvement would set back the cause in the jim crow south.
To my shame, it took until the events surrounding George Floyd’s murder for me to really begin attempting to educate myself on “the rest of the story” of America’s history of institutionalized racism and violence. I’m trying to focus on 3 things:
LEARN the facts, outside of what was in my history education (“we win war for independence, we win ww2, happily ever after” - at least that’s what I generally walked away with)
LISTEN to black writers and voices about their American experience
Focus my own small voice on speaking to my fellow white Americans on our complicity in these atrocities and the system they’ve perpetuated.
I really enjoyed this whole series. Book 2 finds Kellen - magical outcast from his Jan’tep family - beginning to accept his new status as outlaw and trickster, while learning that there is a whole world outside the insular society he grew up in.
Kellen and his makeshift crew have defeated (most would say survived) a large number of assassins, bounty hunters, unnatural disasters, and his own persistently scheming Jan’tep family.
Now it seems there’s a… God out there he’s expected to deal with?
The last book in the 6-book Spellslinger series, which has been really fun.
Sebastian de Castell starts off another tale of magic and swordplay with The Traitor’s Blade. Falcio, Kest, and Brasti make a nice addition to the tradition started by Dumas’ Athos, Aramis, and Porthos. 😀
Yeah, so that horrible curse Kellen lives with, that got him kicked out of his own family and society, and made the constant target of bounty-hunting magi? It’s even more complicated than he thought.
Sebastian de Castell keeps the interesting stories going of Kellen, the Jan’tep outcast and trickster, and the bizarre family that’s been forming around him.
Your whole society is based on magic, your dad is the head of the family and a powerful magi, your sister is a magical prodigy, and your magic just sputtered and died on the day of your magical trials.
Every think programming is magic? IT IS. Ever wonder complain that your code is doing what you said instead of what you meant? BEWARE. Magic and technology, mystical hacking, sentient objects and the ancient and tormented souls that drive them…
Sifting Through the Pandemic is a site about how to recognize misinformation on social media, focused – obviously – on information about the pandemic. OneZero provides an example in this article, where someone claiming to be a doctor posted that hand-sanitizer would do nothing to kill the coronavirus (False!).
What I love about the infodemic.blog system (SIFT) is how simple and memorable it is:
Stop
Investigate the Source
Find Better Coverage
Trace claims, quotes, and media to the original context
In order to fix my archives and daily digests, I might have to address timezone handling on my blog. Or I might just stop blogging #timezonehell#blogging#programming
Daily Digest subscribers: posts should now appear in the email in the order they were written – more narrative style – not in reverse-chronological “blog order” #blogging 💌 😁
After getting a bit tired of my library’s digital collection of #scifi, I’m branching off into #fantasy for a while, and finding some great series to dive into. I really need to add to my list of “books-read” posts #reading2020
“Klatchian coffee has an even bigger sobering effect than an unexpected brown envelope from the tax man. In fact, coffee enthusiasts take the precaution of getting thoroughly drunk before touching the stuff, because Klatchian coffee takes you back through sobriety and, if you’re not careful, out the other side, where the mind of man should not go.”
Some may also advocate for all-mail voting, pointing to states like Colorado and Washington that enjoy higher rates of participation. There are highly migratory populations that have participation problems if mailed ballots are the only option. There’s another concern around mail ballots: with so many jurisdictions looking to quickly switch to this model, no one knows what kind of strain this will put on the postal system.
So yeah, there are going to be issues with mail-in #voting for voters - while eligible - who do not have a permanent address, something many of us take for granted. Ultimately, solutions to fair and free #elections are going to have to be multi-modal.
Seeing calls for national mail-in voting based on success in WA/OR, which seems like a good idea on its face. However I believe those two states are majority white (78%/86% respectively)… anyone looked into how that’s working for poorer and underprivileged communities in those states? #voting
Not much I can say about Terry Pratchett that hasn’t been said better already. A literary Wizard. (I’m re-reading the Discworld series because why the hell not) #reading#fantasy#reading2020
Picked up this omnibus edition of Beacon 23 by Hugh Howey (Wool, Sand). Apparently it was original released in serialized form, which would have been really fun to read.
What would life in a space lighthouse be like? Why would you need one? What if there were empathic alien dog/cat/lynx beasts? What if you could get a high from a gravity wave generator?
Yeah, I powered through this series due to #stayhomestaysafe, and happy I did. A really fun story, and enjoyed seeing many characters in theIo books introduced here in some more depth.
Between the two Io books and the three Tao books, I really want to read Io 3 (write faster, Wesley).
Book 2 of the Tao books by Wesley Chu. This series has gotten some guff due to The Lives of Tao being written as a National Novel Writing Month project, and perhaps I was more invested having read the Io books first, but dammit I really like these books.
Also, knowing that there was a third book in the queue, the ending of this one was a big WHAAaaa? (but it was worth it in book 3)
Having first read the Io books, I finally realized that the Tao books (which I had been skipping in the library list of scifi books for a couple of years, why I do not know) were set 20 years earlier in the same universe and introduced about half the characters.
The Quasing Wars world is really fun to read, and the relationships that Tao and Io have with their hosts are both similar and entirely different.
Technology-enabled shared consciousness? Fascinating. Takes some interesting twists and turns, though the world the characters inhabit is somewhat under-developed. Would like to see more from the author.
Dual protagonists, bodied and unbodied, that will drive you crazy not knowing whether to love them, smack them, or hate them, with stakes both personal and global? What’s not to love? #reading#scifi#reading2020
Ok, and I JUST realized that this is set in the same universe as Chu’s “Lives of Tao” books, which I skipped, but now have to read. I am facepalming SO HARD. 🤦🏻♂️
The Outside, by Ada Hoffmann, is a mix of #scifi and Lovecraftian #horror (what with the unknowable entities that will melt your brain thing), fascinating in its techno-religious imagery. Check it out. #reading#reading2020
#standingdesk update: it’s been 2 hours. Legs aching, back on fire, sweat breaks out across my brow. Never has anyone striven for so much, so long. Rescue unlikely, expecting the sweet embrace of death. Tell my wife I loved her. #drama
Sometimes in software design it’s great to develop a visual of the system in question to help in the thinking process.
Josh Barratt is a software architect at Twilio, and blogs about system design at [Serialized.Net]((https://serialized.net/). His recent post Effective Technical Diagrams has some great guidelines for improving the technical diagrams that we use to communicate.
Images convey ideas and structure far more effectively than text. Especially for software systems, they can even help with reasoning about things like capacity, connectivity, reliability, security and performance.
Like any craft, methods of designing visuals that communicate effectively and efficiently can be studied and improved. We have probably all seen diagrams which led to an immediate “aha!” – and others, that after minutes of squinting, led to only more confusion.
I too, adore OmniGraffle, and have made my share of good and bad technical diagrams in my pursuit of a better design. Here’s one I made in the last year, the usefulness of which could be argued both ways:
I recently found the following in a bit of #python sample code:
random_data = random.sample(string.hexdigits, 8)
Wait, hexdigits? I’d use string.ascii_letters and string.ascii_lowercase before, but this was the first time I’d seen hexdigits, which is exactly what you’d think:
@soapdog @[email protected] yeah the about page is broken because I haven’t written it yet ;P want to write a markdown-to-page handler for the site #blogging#diy
Now that I’m blogging more often, I often find myself uploading screenshots. MacOS’ capabilities are fine, except that I don’t really like uploading files with names like “Screen Shot 2020-02-10 at 10.38.34 PM”.
Are there any #macos screenshot utilities that will simply let me name the file before saving it? (My needs are simple, the OS’ own utility is quite sufficient except for the name thing)
My old Six Apart mate Simon Wistow mentionedMonosnap a free utility that does exactly that - lets me name the file before saving it.
(Conveniently, it also make recording gif screen captures stupid easy)
Imma make this clear: I’m not building software for developers.
I’m working to building tools for people.
You shouldn’t have to know to maintain and secure a server to have your own independent identity online. You shouldn’t need to know what libsodium or similar library to be secure online.
Visit a professional woodshop and ask a master carpenter what her favourite tool is. You may find it’s not a tool in the traditional sense, but a “jig” she built. In woodworking, jigs are patterns or templates built to make repeatable tasks more efficient and outcomes more consistent. Building a one-off bookcase may not warrant building a jig. But, if you’re building three or four of the same bookcase, it’s likely worth building a jig first, then using that jig to build the bookcases.
Our jig consists of a small command line application which integrates publicly accessible API’s from these service providers
Taking the time to make the tools to help do the work is the best thing to do, and knowing when to take that time is an important part of an engineer’s maturing process (see #yakshaving, Code As Craft)
I’m sure it didn’t happen to everyone, but can you see when my use of Twitter took off?
I’ve imported my old tweets as Notes on the site here, which is why I can show those stats. To be fair, my blog had not been very active for a while, but it’s interesting to see over 20 years where my posting activity went:
Yesterday I imported 7800+ tweets into Goldfrog, my blog/cms, as part of owning my own content. Tweets (or Notes) will be published on monkinetic.blog and be syndicated to Twitter. See my archive page (20 years worth), blue are posts and pink are notes
If you follow me on social media - Twitter or Mastodon - you may have seen lots of nonsense posts go by recently…
I’ve been working on improving my POSSE features here, which meant not only composing my posts and notes locally, and then publishing them to Twitter et al, but also being able to track where they “landed” (ids and links) and make it easy for users to find my content on the syndicated site.
So I dug back into my syndication code, rewrote it several times, learned some things about goroutines, learned how not to do some things with goroutines, and settled on a way that worked. With luck, this post and any other that is also published on Twitter or Mastodon will have links to those sites along with the post, and (at least for Twitter right now) have links to reply, favorite, or retweet the post.
This reminded me that I’d like to add a “I linked to you” feature for the post detail page in #goldfrog for this site. (Goldfrog does support Webmentions, so Chris should get an automatic link from this post :))
I think we’re looking at the coming end of a government with co-equal branches. The Senate Republicans, tying their pursuit of personal power to Trump’s own, have abdicated their Constitutional role and are effectively handing Trump a monarchy.
I suppose they cannot imagine a Democrat taking the position again, or believe in that case they will simply find a way to again redefine the Presidency on their own terms? I don’t know.
Ultimately I’d like to break out my webmention code into a releasable #golang module that can provide reusable http.Handler functions that can be plugged into any Go mux that supports them.
POSSE is the #IndieWeb acronym for Publish (on your) Own Site, Syndicate Everywhere. It’s something I’m playing with in Goldfrog.
A common idiom is to differentiate Notes (small microblog-like posts) from Articles (longer blog posts with a title). Right now Goldfrog has a basic blog Post type, with (ID, Title, Slug, Tags, Body). I’d like to keep the posting experience as simple as possible, so I’m thinking about how to handle something that literally just has a Body (and Tags, because I parse and attach any #hashtags - see? - in the content).
My Posts have an ID, though a uniqueness constraint on the slug means I could use that instead. But Notes don’t have a title to “slugify” (it is too a word). Goldfrog also writes every post to the filesystem as a Jekyll-compatible markdown file, so I would need to figure out what format and filename/slug would be appropriate so that they get a permalink.
Url Options
2020/01/16/note-ab43f6 unique hash id
2020/01/16/note-13:25 HH:MM
Actual Progress
An upcoming build of Goldfrog will support new “kind” of Post, albeit only differentiated by the presence of a title. I’ve made a few UI and backend changes to support notes:
Notes get a slug that is constructed from the string “txt-” + a shortened hash based on the note’s content, like txt-8213d2c
Since notes are short enough to look weird on a typical post-detail page, I created a new “Daily Digest” page on the site that shows only the posts for a given day. This is the default target for the permalink for Notes. The slug is used as the id attribute on the note, so the link jumps directly to the note on the digest page. This results in a “permalink” like “YYYY-MM-DD/#txt-8213d2c”
The Syndicate options (currently for Twitter and Mastodon) are now enabled by default for notes.
Clicking the “post form” link takes me to a longer post form with options for a title, custom slug, tags, and a larger content area for writing.
Still to work out
I’m thinking about implementing Webmentions for Goldfrog, since I control the code.
I’m still pondering how to connect a post or note with it’s syndicated version, to allow likes from this site to propagate to the syndicated site. That feels… harder than I want to dig into right now, but I’ll be looking for ideas.
I have blog archives back to May 2000, and made an new archive page that also shows a bar chart of monthly post activity over those 20 years. #blogging
#indieweb folks: how do you post a tweet via the API with a link back to the original? As in, why didn’t this link expand? #possehttps://t.co/hiXKxJkQUG
Back towards the IndieWeb: Another aspect to creating my own blogging software: I can finally start implementing some of #indieweb principles I’ve been watching for a while.
Another aspect to creating my own blogging software: I can finally start implementing some of #indieweb principles I’ve been watching for a while.
One of those is POSSE (Publish Own Site, Syndicate Everywhere) - which means everything you write starts on your own site, and content is syndicated to the appropriate kinds of sites as desired. This could include things like:
Articles are syndicated via RSS (done, no brainer)
Short posts (notes) are automatically or optionally published whole to Twitter, Mastodon, or the microblog of your choice
Articles are automatically or optionally shared to a microblog site with a link back to your own site
Goldfrog + Twitter
While I generally find Twitter overwhelming and frustrating (not nearly as much so as the less-privileged do), I just finished adding a Twitter cross-poster to #goldfrog. I’ll be implementing a Mastodon cross-poster in the next few days (/me waves @ toot.cafe), now that I’ve figured out and implemented the pattern.
The Twitter cross poster will send the title, some text, and a link back to the post. So, let’s see if deploying the new feature worked. :D
For 2020, I’m writing a new blog app. It’s just for myself, a toy to remind me why I love the web. It’s called Goldfrog, and it sounds a bit like “Go, blog!”
Why in the hack, in this day and age, would I spend time writing my own #blogging software, when you can’t sign up for a VPS anywhere without tripping over offers to help you set up Wordpress, or Ghost, or what have you?
A few reasons.
New Year, New You
2019 was shite-filled, and due to politics, the tech trashfire, and the friction of blogging through several variations of static, git-powered versions of this site, I simply stopped blogging. I’ve wanted to, but the effort killed the motivation before I could get some words out.
So I finally decided to write something myself, that did just the things I wanted. #goldfrog is written in Go, because while I will love Python to my dying day, my brain needed a kick in the pants this year, which relates to my next point.
The Builder’s High
Rands writes eloquently on the builder’s high. With family engagements and work over the last few years my hobby coding has dropped to almost nil (None if I were writing Python).
I needed something to reboot my creative juices, and trying to write something I really wanted, that thought would be quick, in a new language, seemed like a good way to go (I did want it, it wasn’t easy, and Go hates me. But I’m learning and that feels great!)
Goldfrog
A bit more about Goldfrog: the single feature I wanted was a posting form on the home page, right up front. Various Userland products had had this, and it always felt right.
Second to this was an “Edit” link next to every post, wherever it was found on the site.
Finally, my main technical “innovation”: My content is still stored on the filesystem as Jekyll-compatible Markdown files. However, build times via Jekyll or Hugo are fairly slow for my 2800+ posts (since 2000, baby) and I hate that. So #goldfrog indexes all posts in a sqlite database on disk. Post creation and edits go to the DB and to the filesystem, so I can still periodically sync the changes to the git repo I have checked out there. But all the list views, archives, tag pages, and search functionality go to the DB, and are really fast.
The Setup
This is really the app I’ve wanted for a long time.
It’s hosted on a Linode “nano”
The app builds on CircleCI and the binary is pushed to an S3 bucket.
I’ve got ansible playbooks that setup the VPS pretty much from scratch with Nginx fronting Goldfrog.
Next
I really need to get my logging story fixed, and I’ve got some idea on adding basic metric tracking to the app.
#eveonline explorers and relic hunters: if you are sci-fi fans, check out Alistair Reynolds Revenger - it’s not brilliant (his first YA book) but has some fun bits that are very reminiscent explorer culture
For a bit of variety, I decided to figure out how to generate a new front page header background and link colors whenever I rebuilt the blog (new posts, etc). This is still a static site, so no wizzy javascript stuff, I just wanted to do it in SASS.
This is what I came up with.
$colors-list: (
// background color, link color
#DAE076#AD5C55,
#A9C9C5#4A676D,
#AD5C55#5E7D68,
#374768#718A8A,
);
$color-index: random(length($colors-list));
// Header description box
$colors: nth($colors-list, $color-index);
$header-desc-background-color: nth($colors, 1);
// Link color
$link-color: nth($colors, 2);
I may rework this as a map (dictionary) later on so I can add other theme-y things, but it was kinda fun to work out for now.